The invention generally relates to data, voice, and video transmission networks and, more particularly, the invention relates to minimizing the delay of time critical data transmissions across a network.
Time dependent data, such as voice data, often is transmitted over large, packet based public networks (e.g., the Internet). Prior to transmission, a sending node may encode the voice data and encapsulate the encoded data in a data packet (e.g., an Internet Protocol packet). In a similar manner, upon receipt of a data packet having voice data, a receiver correspondingly may remove the encoded data from the packet, and then decode the removed data to produce the voice data.
Nodes transmitting voice data commonly have a processor (e.g., a gateway) that performs these noted encoding/decoding functions. In addition to processing voice data, many such currently available processors also process other types of data, such as fax data and modem data. Processing these various types of data on a single processor, however, undesirably can introduce delay to voice transmissions. For example, voice data can be held in a queue while fax data is being processed. Coupled with the inherent delay produced by transmission across the Internet (e.g., typically on the order of at least 150 milliseconds), this delay can degrade voice quality to unacceptably low levels.
In accordance with one aspect of the invention, an apparatus and method of forwarding data from a sending node to a receiving node across a network first encapsulates non-time dependent data in specifically sized frames, and then transmits such encapsulated frames after frames with time dependent data are transmitted. More particularly, the data includes a set of time dependent data types and a-set of non-time dependent data types. Each of the time dependent data types are specified (e.g., by their specific protocol specifications) to forward data in frames having a predefined frame size.
Accordingly, it is determined which data type of the set of time dependent data types has the largest predefined frame size (i.e., as specified by their respective protocol specifications). Data of each of the set of non-time dependent data types then are encapsulated in given frames. Each given frame has a size that is equal to that of the largest predefined frame size. In addition, each given frame has no more data than one of the set of non-time dependent data types. During each of a plurality of cycles, at least one frame of data for each of the set of data types having time dependent data is transmitted. Also during each of the plurality of cycles, one given frame is transmitted for each of the set of data types having the non-time dependent data. Each given frame is transmitted, during each cycle, after at least one frame of each of the set of time dependent data types is transmitted.
In some embodiments, the set of time dependent data types ranges from no data types to a plurality of data types. In a similar manner, the set of non-time dependent data types may range from no data types to a plurality of data types. The set of time dependent data types may include at least one of an audio data type (e.g., G.723.1 voice data type) and a video data type. The set of non-time dependent data types may include fax and modem data types. In illustrative embodiments, during each cycle, given frames having fax data are transmitted before transmission of given frames having modem data. In yet other embodiments, frames of time dependent data types are transmitted, during each cycle, in ascending order based upon the predefined size of frames of each such data type. Non-time dependent data types may be data types that are specified to tolerate a delay of greater than about 150 milliseconds.
In accordance with another aspect of the invention, a method and apparatus of transmitting data of a plurality of different data types from a sender to a receiver across a network first determines if the data includes at least one time dependent data type and at least one non-time dependent data type. If it is determined that the data includes at least one time dependent data type and at least one non-time dependent data type, then it is determined which of the at least one time dependent data types is specified to have the largest predefined frame size. The data of the at least one non-time dependent data types then is encapsulated in given frames having a size that is equal to the largest predefined size. Each given frame has data of no more than one data type. During each of a plurality of cycles, at least one frame of each data type is transmitted. At least one frame for each of the at least one time dependent data types preferably is transmitted before any of the given frames are transmitted.
Various embodiments of the invention are implemented as a computer program product having a computer usable medium with computer readable program code thereon. The computer readable code may be read and utilized by a computer system in accordance with conventional processes.